package com.solome.util.csv;

public class CellUtils {

	static String file = "";

	public static void debug(String cell) {
		// int start = cell.getRow().getFirstCellNum();
		// int end = cell.getRow().getPhysicalNumberOfCells();
		// String msg = "(";
		// for (int i = start; i <= end; i++) {
		// HSSFCell tmp = cell.getRow().getCell(i);
		// if (tmp == null)
		// continue;
		// msg += tmp.toString();
		// if (i < end)
		// msg += ",";
		// }
		// msg += ")";
		//
		// System.err.println("[" + cell.getClass().getSimpleName() + "]出错---->"
		// + cell.getSheet().getSheetName() + "->" + msg);
	}

	/**
	 * 将一个单元格数据按布尔型返回
	 * 
	 * @param cell
	 *            单元格
	 * @return 布尔值
	 */
	public static boolean getBoolean(String cell) {
		if (cell != null)
			try {
				int value = Integer.valueOf(cell);
				switch (value) {
				case 0:
					return false;
				case 1:
					return true;
				}
			} catch (Exception ex) {
				debug(cell);
				return false;
			}
		return false;
	}

	/**
	 * 将一个单元格数据按一个Byte值返回
	 * 
	 * @param cell
	 *            单元格
	 * @return 数据
	 */
	public static byte getByte(String cell) {
		if (cell != null) {
			try {
				return (byte) getInt(cell);
			} catch (Exception ex) {
				try {
					return Byte.valueOf(cell);
				} catch (Exception e) {
					debug(cell);
					return 0;
				}
			}
		}

		return -1;
	}

	/**
	 * 将一个单元格数据按一个Double值返回
	 * 
	 * @param cell
	 *            单元格
	 * @return 数据
	 */
	public static double getDouble(String cell) {
		if (cell != null) {
			try {
				return Double.valueOf(cell);
			} catch (Exception ex) {
				debug(cell);
				return 0;
			}
		}
		return -1;
	}

	/**
	 * 将一个单元格数据按一个Int值返回
	 * 
	 * @param cell
	 *            单元格
	 * @return 数据
	 */
	public static int getInt(String cell) {
		if (cell != null) {
			try {
				return Integer.valueOf(cell);
			} catch (Exception ex) {
				debug(cell);
				return 0;
			}
		}
		return -1;
	}

	/**
	 * 将一个单元格数据按一个Short值返回
	 * 
	 * @param cell
	 *            单元格
	 * @return 数据
	 */
	public static short getShort(String cell) {
		if (cell != null)
			try {
				return Short.valueOf(cell);
			} catch (Exception e) {
				debug(cell);
			}

		return -1;
	}

	/**
	 * 将一个单元格数据按一个字符串返回
	 * 
	 * @param cell
	 *            单元格
	 * @return 数据
	 */
	public static String getString(String cell) {
		try {
			return cell;
		} catch (Exception ex) {
		}
		return String.valueOf(cell).trim();
	}
}
